function Y = diagonalPrecon3DApplication(X,precision,D,n)
    Y = optimizedAdjointPPFT3D(optimizedPPFT3D(X,precision),precision);
    Y=reshape(D,[n,n,n]).*Y;
end
